package com.codepath.example.animationgesturesdemo.activities; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.View; import android.widget.Button; import android.widget.TextView; import com.codepath.example.animationgesturesdemo.R; public class AnimationDemoActivity extends Activity { private Button btnFadeOut; private TextView tvMessage; private Button btnRepeat; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_animation_demo); btnFadeOut = (Button) findViewById(R.id.btnFade); btnRepeat = (Button) findViewById(R.id.btnRepeat); tvMessage = (TextView) findViewById(R.id.tvMessage); } // Fade out and then when completed fade back in public void onFadeOut(View v) { btnFadeOut.animate().alpha(0).setDuration(2000).setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { btnFadeOut.animate().alpha(1f).setDuration(2000); } }); } // Slide message from button up to display, then later slide out public void onSlideMessage(View v) { tvMessage.setVisibility(View.VISIBLE); final int yPosInitial = getScreenHeight() + tvMessage.getHeight(); int yPosDest = tvMessage.getHeight(); tvMessage.setY(yPosInitial); tvMessage.animate().translationY(yPosDest).setDuration(2000).setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { tvMessage.animate().translationY(yPosInitial).setDuration(2000).setStartDelay(2000); } }); } public void onRepeatAnimation(View v) { // Setup scale Y ObjectAnimator scaleAnimY = ObjectAnimator.ofFloat(btnRepeat, "scaleY", 1.0f, 1.5f); scaleAnimY.setDuration(3000); scaleAnimY.setRepeatCount(ValueAnimator.INFINITE); scaleAnimY.setRepeatMode(ValueAnimator.REVERSE); // Setup scale X ObjectAnimator scaleAnimX = ObjectAnimator.ofFloat(btnRepeat, "scaleX", 1.0f, 1.5f); scaleAnimX.setDuration(3000); scaleAnimX.setRepeatCount(ValueAnimator.INFINITE); scaleAnimX.setRepeatMode(ValueAnimator.REVERSE); // Setup animation set AnimatorSet set = new AnimatorSet(); set.playTogether(scaleAnimX, scaleAnimY); set.start(); } public void onActivityTransition(View v) { Intent i = new Intent(AnimationDemoActivity.this, MainActivity.class); startActivity(i); overridePendingTransition(R.anim.slide_right_in, R.anim.slide_left_out); } // Returns height of the screen public int getScreenHeight() { DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); return metrics.heightPixels; } }